/*
 * https://github.com/morethanwords/tweb
 * Copyright (C) 2019-2021 Eduard Kuzmenko
 * https://github.com/morethanwords/tweb/blob/master/LICENSE
 */

.ckin {
  &__player {
    letter-spacing: 0.02em;
    user-select: none;

    &.ckin__fullscreen {
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      height: 100%;
      width: 100%;
      z-index: 10000000;
      background: #000;
      border-radius: 0 !important;
      display: -ms-flexbox;
      display: flex;
    
      video {
        width: 100%;
        height: 100%;
        /* max-height: none;
        max-width: none; */
        object-fit: contain;
      }
    }

    .time {
      margin-left: .875rem;
      font-size: .875rem;
      color: #fff;
      
      @include respond-to(handhelds) {
        margin-left: 1.125rem;
      }
    }
  }
}

.default {
  position: relative;
  font-size: 0;
  //overflow: hidden;
  //border-radius: 5px;
  display: flex;
	align-items: center;
	justify-content: center;

  &.show-controls video {
    cursor: pointer;
  }

  /* &:before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    transition: opacity .2s;
    opacity: 1;
    visibility: visible;
  } */

  &__button {
    color: #fff;
    padding: .375rem;

    i {
      align-self: center;
    }

    &--big {
      background: none;
      border: 0;
      line-height: 1;
      color: #fff;
      text-align: center;
      outline: 0;
      padding: 0;
      position: absolute;
      opacity: 1;
      top: 50%;
      left: 50%;
      transform: translate3d(-50%, -50%, 0) scale(1);
      font-size: 4rem;

      @include respond-to(not-handhelds) {
        pointer-events: none;
      }
      
      @include animation-level(2) {
        transition: opacity var(--layer-transition);
      }

      @include respond-to(handhelds) {
        font-size: 3rem;
      }
    }
  }

  &:not(.played) {
    .default__button--big {
      opacity: 0;
    }
  }

  &__controls {
    position: absolute;
    bottom: 0;
    right: 0;
    left: 0;
    text-align: start;
    direction: ltr;
    z-index: 6;

    @include animation-level(2) {
      transition: transform var(--layer-transition);
    }

    .progress-line {
      margin: 0 16px;
      border-radius: var(--border-radius);
  
      &__filled {
        background: var(--primary-color);
      }

      &__loaded {
        background-color: #fff;
      }
  
      & {
        background: rgba(255, 255, 255, .38);
      }

      @include respond-to(handhelds) {
        margin-bottom: -1px;
      }
    }
  }

  &__gradient-bottom {
    height: 49px;
    // padding-top: 49px;
    padding-top: 93px;
    bottom: 0;
    z-index: 2;
    background-position: bottom;
    width: 100%;
    position: absolute;
    background-repeat: repeat-x;
    background-image: url();
    pointer-events: none;

    @include animation-level(2) {
      transition: transform var(--layer-transition);
    }
  }

  &:not(.ckin__fullscreen) .default__gradient-bottom {
    @include respond-to(handhelds) {
      display: none;
    }
  }

  .toggle:before {
    content: $tgico-play;
  }

  .default__gradient-bottom {
    transform: translate3d(0, 50px, 0);
  }

  .default__controls {
    transform: translate3d(0, 52px, 0);

    @include respond-to(handhelds) {
      transform: translate3d(0, 65px, 0);
    }
  }

  &.show-controls {
    .default__gradient-bottom, 
    .default__controls {
      transform: translateZ(0);
    }
  }

  &.is-playing {
    &:not(.show-controls) {
      cursor: none;
    }
  }

  &.is-playing,
  &:not(.played),
  &.is-seeking {
    .default__button--big {
      opacity: 0;
    }

    .toggle:not(.default__button--big) {
      &:before {
        content: $tgico-pause;
      }
    }
  }

  .is-seeking + .default__button--big {
    opacity: 0;
  }

  .player-volume {
    --icon-size: 2.25rem;
    --icon-margin-right: .5rem;
    --selector-size: 50px;
    --selector-thumb-size: .75rem;
    --hide-width: var(--icon-size);
    --show-width: calc(var(--icon-size) + var(--icon-margin-right) + var(--selector-size) + var(--selector-thumb-size) * .75);
    // margin: 0 .125rem;
    display: flex;
    align-items: center;
    width: var(--hide-width);
    overflow: hidden;

    @include animation-level(2) {
      transition: width var(--layer-transition);
    }

    html.is-touch & {
      // margin-left: .125rem;
      display: none;
    }

    html:not(.is-touch) & {
      & + .time {
        margin-left: .5rem;
      }
    }

    @include hover() {
      width: var(--show-width);
    }
    
    &__icon {
      color: #fff;
      width: var(--icon-size);
      height: var(--icon-size);
      margin-right: var(--icon-margin-right);
      cursor: pointer;
      padding: .375rem;
      font-size: 1.5rem;
      display: flex;
    }

    .progress-line {
      --color: #fff;
      --thumb-size: var(--selector-thumb-size);
      --height: 4px;
      margin: 0;
      width: var(--selector-size);
      min-width: var(--selector-size);

      // https://stackoverflow.com/a/4816050
      html.is-ios & {
        display: none;
      }
    } 
  }

  &.is-buffering {
    > .toggle {
      display: none !important;
    }
  }
}

video::-webkit-media-controls-enclosure {
  display: none !important;
}

.progress-line {
  --color: var(--primary-color);
  --height: 5px;
  --border-radius: 6px;
  --thumb-size: 13px;
  border-radius: var(--border-radius);
  height: var(--height);
  position: relative;
  cursor: pointer;

  &:before {
    position: absolute;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
    display: block;
    content: " ";
    border-radius: inherit;
  }

  &__seek {
    -webkit-appearance: none;
    -moz-appearance: none;
    background: transparent;
    width: 100%;
    cursor: pointer;
    padding: 0;
    margin: 0;
    outline: none;
    caret-color: var(--color);
    position: absolute;
    top: -.5rem;
    bottom: -.5rem;

    &:focus {
      outline: none;

      /* &::-webkit-slider-runnable-track {
        background: transparent;
      }

      &::-moz-range-track {
        outline: none;
      } */
    }

    &::-webkit-slider-thumb {
      display: none;
    }

    &::-moz-range-thumb {
      display: none;
      width: 0;
      height: 0;
    }

    &::-moz-range-track {
      display: none;
    }

    &::-webkit-slider-runnable-track {
      display: none;
    }

    /* &::-webkit-slider-thumb,
    &::-moz-range-thumb,
    &::-moz-range-track,
    &::-webkit-slider-runnable-track {
      -webkit-appearance: none;
      background: transparent; 
      border-color: transparent;
      color: transparent;
      width: 0;
      height: 0;
    } */
  }

  &__filled {
    // padding-right: 1px; // * need because there is border-radius
    max-width: 100%;

    &:not(.progress-line__loaded) {
      background-color: var(--color);
      z-index: 1;

      &:after {
        content: " ";
        display: block;
        height: var(--thumb-size);
        width: var(--thumb-size);
        border-radius: 50%;
        background-color: var(--color);
        cursor: pointer;
        position: absolute;
        right: 0;
        top: calc((var(--thumb-size) - var(--height)) / -2);
        transform: translateX(calc(var(--thumb-size) / 2)) scale(1);

        @include animation-level(2) {
          transition: transform .125s ease-in-out;
        }
      }
    }
  }

  &.is-focused .progress-line__filled:not(.progress-line__loaded):after {
    transform: translateX(calc(var(--thumb-size) / 2)) scale(1.125);
  }

  &__loaded, &:before {
    opacity: .3;
    background-color: var(--secondary-color);
  }

  &__filled, 
  &__loaded {
    border-radius: var(--border-radius);
    position: absolute;
    top: 0;
    bottom: 0;
  }

  @include animation-level(2) {
    &.with-transition {
      .progress-line__filled {
        transition: width .2s;
      }
    }
  }

  &.use-transform {
    .progress-line__filled {
      width: 100%;
      transform-origin: left center;
    }
  }
}

input[type=range] {
  &::-ms-track {
    visibility: hidden;
  }

  &::-ms-ticks {
    background: none;
    color: none;
    border: none;
  }

  &::-ms-thumb {
    visibility: hidden;
  }

  &::-ms-tooltip {
    visibility: hidden;
  }
}

.left-controls,
.right-controls {
  display: flex;
  align-items: center;
}

.bottom-controls {
  padding: 0 .625rem;
  height: 2.25rem;
  display: flex;
  justify-content: space-between;
  align-items: center;

  @include respond-to(handhelds) {
    height: 3.625rem;
  }
}
